<?php

class SiteController extends Controller
{
  /**
   * Declares class-based actions.
   */
  public function actions()
  {
    return array(
      // captcha action renders the CAPTCHA image displayed on the contact page
      'captcha'=>array(
        'class'=>'CCaptchaAction',
        'backColor'=>0xFFFFFF,
      ),
      // page action renders "static" pages stored under 'protected/views/site/pages'
      // They can be accessed via: index.php?r=site/page&view=FileName
      'page'=>array(
        'class'=>'CViewAction',
      ),
    );
  }

  /**
   * This is the default 'index' action that is invoked
   * when an action is not explicitly requested by users.
   */
  public function actionIndex()
  {
  	$productsList = array(); 
  	$products = Products::model()->findAll(array(
      'condition'=>'enable=:enable AND feature=:feature',
      'params'=>array(':enable' => true, ':feature' => true),
      'order' => 'rand()',
      'limit' => 21
    ));
		 	
    foreach($products as $product) {
    	$productsList[] = array('slug' => $product->slug, 'thumbnailPath' => $product->defaultPhoto->thumbnailPath);
    }
    $countArray = count($productsList); 
    if($countArray<21) {
    	$diff = 21- $countArray;
    	$add = array_fill(0, $diff, array('slug' => '', 'thumbnailPath' => ''));
    	array_splice($productsList, $countArray, 0,$add);	
    }
    
    $listLink[] = array('slug' => 'list', 'thumbnailPath' => '');
    array_splice($productsList, 12, 0,$listLink);
    
  	$page = Pages::model()->find(array(
      'condition'=>'slug=:slug',
      'params'=>array(':slug' => 'index'),
    ));
    $this->render('index', compact('productsList', 'page')); 
  }

  /**
   * This is the action to handle external exceptions.
   */
  public function actionError()
  {
      if($error=Yii::app()->errorHandler->error)
      {
        if(Yii::app()->request->isAjaxRequest)
          echo $error['message'];
        else
            $this->render('error', $error);
      }
  }

  /**
   * Displays the contact page
   */
  public function actionContact()
  {
    $this->layout = '//layouts/main';
    $data['address'] = getConfig("address");
    $data['email_sale'] = getConfig("email_sale");
    $data['tel'] = getConfig("tel");
    $data['fax'] = getConfig("fax");  
/*
    $page = Pages::model()->find(array(
      'condition'=>'slug=:slug',
      'params'=>array(':slug' => 'contact-us'),
    ));
 */
    $model=new ContactForm;
    if(isset($_POST['ContactForm']))
    {
      $model->attributes=$_POST['ContactForm'];
      if($model->validate())
      {
        $headers="From: {$model->email}\r\nReply-To: {$model->email}";
        $headers .= 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
        $body = "Name: ".$model->name ." SurName: ".$model->surname."<br />";
        $body .= $model->body;
        mail($data['email_sale'],'[Contact Us] '.$model->subject,$body,$headers);
        Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
        $this->refresh();
      }
    }

    $this->metaKeyword = 'Contact Us : '.$this->metaKeyword;

    $this->render('contact',array('model'=>$model, 'data'=>$data));
  }

  /**
   * Displays the login page
   */
  public function actionLogin()
  {
    $this->layout='//layouts/admin';
    $model=new LoginForm;

    // if it is ajax validation request
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
      echo CActiveForm::validate($model);
      Yii::app()->end();
    }

    // collect user input data
    if(isset($_POST['LoginForm']))
    {
      $model->attributes=$_POST['LoginForm'];
      // validate user input and redirect to the previous page if valid
      if($model->validate() && $model->login())
        $this->redirect(Yii::app()->user->returnUrl);
    }
    // display the login form
    $this->render('login',array('model'=>$model));
  }

  /**
   * Logs out the current user and redirect to homepage.
   */
  public function actionLogout()
  {
    Yii::app()->user->logout();
    $this->redirect(Yii::app()->homeUrl);
  }
  
  public function actionSearch()
  {
  	$this->layout='//layouts/main';
    $criteria = new CDbCriteria();
    $criteria->select='t.*';
    $criteria->join='INNER JOIN product_categories pc ON t.product_category_id=pc.id';

    if(isset($_GET['search']))
    {
      $q = $_GET['search'];
      $criteria->compare('t.name_en', $q, true, 'OR');
      $criteria->compare('t.name_th', $q, true, 'OR');
      $criteria->compare('t.description_en', $q, true, 'OR');
      $criteria->compare('t.description_th', $q, true, 'OR');
      $criteria->compare('pc.name_en', $q, true, 'OR');
      $criteria->compare('pc.name_th', $q, true, 'OR');
      $criteria->compare('pc.description_en', $q, true, 'OR');
      $criteria->compare('pc.description_th', $q, true, 'OR');      
    }
    $dataProvider=new CActiveDataProvider("Products", array('criteria'=>$criteria));
    $this->render('search',array('dataProvider'=>$dataProvider));
  }  
}